In a multi protocol label switching (MPLS) communication network, a data packet travels from one router to the next, wherein each router makes an independent forwarding decision for the data packet. That is, each router analyzes a header of the data packet, and each router runs a network layer routing algorithm. Each router independently chooses a next hop (next router) for the data packet, based on its analysis of the data packet header and the routing algorithm.
In order to choose the next hop, the router may determine to which forwarding equivalence class (FEC) the data packet belongs. Then, the router maps the FEC to a next hop. Different data packets which get mapped into the same FEC are indistinguishable, as far as the forwarding decision is concerned. That is, all data packets which belong to a particular FEC and which are sent out from a common network node will follow the same path through the communication network (or if certain kinds of multi-path routing are in use, they will all follow one of a set of paths associated with the FEC).
In conventional Internet Protocol (IP) forwarding, as the data packet traverses the network, each router reexamines routing data of the data packet (typically included in the header of the data packet) and assigns it to an FEC. In contrast, in MPLS communication networks, the assignment of a particular data packet to a particular FEC is done just once, usually when the packet enters the MPLS communication network. The FEC to which the data packet is assigned is encoded as a short fixed length value known as “label” and included into the header of the data packet. Thus, when a data packet is forwarded to its next hop, the label is sent along with it; that is, the data packets are “labeled” before they are forwarded. At subsequent routers, there is no further analysis of the header of the data packet. Rather, the label is used as an index which specifies the next hop, and a new label. The old label is replaced with the new label, and the packet is forwarded to its next hop. That is, in MPLS forwarding, once a data packet is assigned to a FEC, no further header analysis is done by subsequent routers (i.e., all forwarding is driven by the label, wherein the label itself represents the FEC).
MPLS communication networks have a number of advantages, compared to conventional networks: First, MPLS forwarding can be done by low performance routers (“switches”) which are capable of doing label lookup and replacement, but which need not be capable of analyzing the headers of the data packets, or need at least not be capable of analyzing the headers at adequate speed.
Second, since a data packet is assigned to a FEC at the router where it enters the network (ingress router), the ingress router may use, in determining the assignment, any information related to the data packet, even if that information cannot be derived from the header of the data packet, which is a further advantage. For example, data packets arriving on different ports of the ingress router may be assigned to different FECs. Conventional forwarding, on the other hand, can only consider information included in the header of the data packet.
Third, a data packet which enters the communication network at a particular router can be labeled differently than the same packet entering the network at a different router, and as a result forwarding decisions that depend on the ingress router can be easily made. Also, processes that determine how a data packet is assigned to a FEC can be complex since they have to be carried out only once, at the ingress router. The other routers that merely forward labeled data packets do not have to carry out these processes.
If the amount of data packets to be routed through the communication network from a first router to a second router exceeds a particular threshold value, it may be advantageous to route the data packets from the first router to the second router via a plurality of paths instead of via a single path in order to adequately balance the load of data packets (“load balancing”). However, IP/MPLS networks do not support per se load balancing of data packets applicable in all kinds of communication network topologies. In particular, IP/MPLS communication networks do not support load balancing of data packets in aggregation/backhaul network topologies including ring topologies.